package com.方法引用.引用构造器;

/*
* 练习
    1:定义一个类(Student),里面有两个成员变量(name, age)
        并提供无参构造方法和带参构造方法，以及成员变量对应的get和set方法
    2:定义一个接口(StudentBuilder)，里面定义一个抽象方法
        Student build(String name, int age);
    3:定义一个测试类(StudentDemo),在测试类中提供两个方法
        一 个方法是: useStudentBuilder(StudentBuilder s)
        一个方法是主方法，在主方法中调用useStudentBuilder方法
* */

public class StudentDemo {
    public static void main(String[] args) {
//        useStudentBuilder((String name,int age)->{
//            Student stu = new Student(name,age);
//            return stu;
//        });

        useStudentBuilder((name, age) -> new Student(name, age));

        //引用构造器
        useStudentBuilder(Student::new);

        //lambda表达式被构造器代替的时候，他的形式参数全部传递给构造器为参数
    }

    public static void useStudentBuilder(StudentBuilder s) {
        Student stu = s.build("小名", 18);
        System.out.println(stu.getAge() + "," + stu.getName());
    }
}
